//package maven.jyhs.com.dao.impl;
//
//import maven.jyhs.com.dao.BaseDao;
//import maven.jyhs.com.dao.TranstfeDao;
//import maven.jyhs.com.entity.Sea;
//import maven.jyhs.com.entity.Search;
//import maven.jyhs.com.entity.User;
//import maven.jyhs.com.util.Reflection;
//
//import java.lang.reflect.Field;
//import java.sql.Connection;
//import java.sql.PreparedStatement;
//import java.sql.ResultSet;
//import java.sql.SQLException;
//import java.util.ArrayList;
//import java.util.List;
//
//public class TranstfeDaoImpl extends BaseDao implements TranstfeDao {
//    Connection conn = null;
//    PreparedStatement pr = null;
//    ResultSet rs = null;
//
//    TranstfeDao transtfeDao;
//    @Override
//    public void setTranstfeDao(TranstfeDao transtfeDao) {
//        this.transtfeDao = transtfeDao;
//    }
//
//    // 从数据库中获取所有用户信息并返回列表
//    public List<User> gather() {
//        List<User> list = new ArrayList<>();
//        conn = conn(); // 获取数据库连接
//        String sql = "SELECT * FROM transfers"; // 查询所有用户的SQL语句
//        try {
//            pr = conn.prepareStatement(sql);
//            rs = pr.executeQuery();
//            while (rs.next()) {
//                User fp = new User();
//                fp.setId(rs.getInt("id")); // 设置用户ID
//                fp.setBalance(rs.getString("balance")); // 设置余额
//                fp.setCardnumber(rs.getInt("cardnumber")); // 设置卡号
//                fp.setName(rs.getString("name")); // 设置用户名
//                fp.setPhone(rs.getLong("phone")); // 设置手机号
//                fp.setOperit(rs.getString("operit")); // 设置操作记录
//                list.add(fp);
//            }
//        } catch (SQLException e) {
//            e.printStackTrace();
//        } finally {
//            close(conn, pr, rs); // 关闭数据库资源
//        }
//        return list;
//    }
//
//    @Override
//    public long id(int id) throws IllegalAccessException {
//        User user = null;
//        conn = conn();
//        String sql = "SELECT * FROM transfers WHERE id = ?;";
//        try {
//            pr = conn.prepareStatement(sql);
//            pr.setInt(1, id); // 设置查询参数
//            rs = pr.executeQuery();
//            if (rs.next()) { // 如果有结果
//                user = new User();
//                Reflection.ReflectUtil(rs, user); // 使用反射工具设置用户字段
//            }
//        } catch (SQLException e) {
//            throw new RuntimeException(e);
//        }
//
//        return 0;
//    }
//
//    @Override
//    public int add(String name, String shoname, Integer cardnumber, Integer amount) {
//        try {
//            conn = conn();
//            String sql = "INSERT INTO `shozhangbiao` (`name`, `shoname`, `cardnumber`,  `amount`)VALUES (?, ?, ?, ?);";
//            pr = conn.prepareStatement(sql);
//            pr.setString(1, name);
//            pr.setString(2, shoname);
//            pr.setInt(3, cardnumber);
//            pr.setInt(4, amount);
//            return pr.executeUpdate(); // 执行插入操作
//        } catch (SQLException e) {
//            throw new RuntimeException(e);
//        }
//    }
//
//    @Override
//    public int xuogai1(int jq, String skname, String fkname) {
//        return 0;
//    }
//
//    @Override
//    public int xuogai2(int jq, String skname, String fkname) {
//        return 0;
//    }
//
//    @Override
//    public int xuogai(int jq, String skname, String fkname) {
//        try {
//            conn = conn();
//            String sql = "UPDATE `zhuanzhang`.`transfers` SET `balance` = balance - ? WHERE `name` = ?;";
//            pr = conn.prepareStatement(sql);
//            pr.setInt(1, jq);
//            pr.setString(2, fkname);
//            int i = pr.executeUpdate(); // 减少付款人余额
//            if (i > 0) {
//                String sql1 = "UPDATE `zhuanzhang`.`transfers` SET `balance` = balance + ? WHERE `name` = ?;";
//                pr = conn.prepareStatement(sql1);
//                pr.setInt(1, jq);
//                pr.setString(2, skname);
//                return pr.executeUpdate(); // 增加收款人余额
//            }
//            return i;
//        } catch (SQLException e) {
//            throw new RuntimeException(e);
//        }
//    }
//
//    @Override
//    public int chishu() throws SQLException, IllegalAccessException {
//        conn = conn();
//        String sql = "SELECT * FROM shozhangbiao";
//        pr = conn.prepareStatement(sql);
//        rs = pr.executeQuery();
//        List<Search> list = new ArrayList<>();
//        while (rs.next()) {
//            Search search = new Search();
//            Reflection.ReflectUtil(rs, search);
//            list.add(search); // 添加记录到结果列表
//        }
//        return list.size(); // 返回记录的数量
//    }
//
//    // 执行查询并返回结果集，支持分页和条件过滤
//    public ResultSet executeQuery(String sql, Object obj, int page, int limit) throws IllegalAccessException, SQLException {
//        StringBuilder sqlBuilder = new StringBuilder(sql);
//        Field[] fields = obj.getClass().getDeclaredFields();
//        List<Object> fieldValues = new ArrayList<>();
//
//        for (Field field : fields) {
//            field.setAccessible(true);
//            Object value = field.get(obj);
//            if (value != null && !value.equals("")) {
//                if (field.getType().getName().equals("java.lang.Integer")) continue;
//
//                if (field.getName().equals("zhangsj")) {
//                    sqlBuilder.append(" AND zhangsj >= ?");
//                    fieldValues.add(value); // 添加日期参数
//                } else {
//                    sqlBuilder.append(" AND " + field.getName() + " = ?");
//                    fieldValues.add(value); // 添加其他参数
//                }
//            }
//        }
//        if (page > 0 && limit > 0) {
//            sqlBuilder.append(" LIMIT ?,?");
//            fieldValues.add((page - 1) * limit); // 设置分页参数
//            fieldValues.add(limit);
//        }
//
//        // 准备 SQL 语句并设置参数
//        pr = conn.prepareStatement(sqlBuilder.toString());
//        int i = 1;
//        for (Object value : fieldValues) {
//            pr.setObject(i++, value); // 绑定参数值
//        }
//
//        return pr.executeQuery(); // 执行查询并返回结果集
//    }
//
//    @Override
//    public List<Search> getYs(int page, int limit, Sea sea) throws SQLException, ClassNotFoundException, IllegalAccessException {
//        conn = conn();
//        ResultSet rs = executeQuery("SELECT id,name,shoname,Cardnumber,left(zhangsj,19) as zhangsj,amount FROM `zhuanzhang`.`shozhangbiao` WHERE 1=1 ", sea, page, limit);
//        List<Search> list = new ArrayList<>();
//        while (rs.next()) {
//            Search user = new Search();
//            Reflection.ReflectUtil(rs, user); // 使用反射工具填充对象属性
//
//            list.add(user);
//        }
//        return list;
//    }
//
//    @Override
//    public int search(Sea sea) throws SQLException, IllegalAccessException {
//        conn = conn();
//        ResultSet rs = executeQuery("SELECT id,name,shoname,Cardnumber,left(zhangsj,19) as zhangsj,amount FROM `zhuanzhang`.`shozhangbiao` WHERE 1=1 ", sea, 0, 0);
//        List<Sea> list = new ArrayList<>();
//        while (rs.next()) {
//            Sea user = new Sea();
//            Reflection.ReflectUtil(rs, user); // 使用反射工具填充对象属性
//            list.add(user);
//        }
//        return list.size(); // 返回查询到的行数
//    }
//
//    @Override
//    public int login(String phone) throws SQLException, IllegalAccessException {
//        conn = conn();
//      String  sql = "select * from transfers where phone = ?";
//        pr = conn.prepareStatement(sql);
//        pr.setString(1, phone);
//        rs = pr.executeQuery();
//        if (rs.next()) {
//        return 1;
//        }
//        return 0;
//    }
//
//    @Override
//    public int balance(int id) throws SQLException, IllegalAccessException {
//        return 0;
//    }
//}
